// 同时发送异步代码请求的次数
let ajaxTimes = 0;
export const request = (params) => {

  ajaxTimes ++;

  // 显示加载中 效果
  wx.showLoading({
    title: '加载中',
    // 显示透明蒙层，防止触摸穿透
    mask: true
  })

  // 后台的请求地址，与app.yml中的server中的port对应
  const baseUrl = 'http://192.168.43.118:9090';
  
  // 获取登录页存入缓存的账户信息
  const user = wx.getStorageSync('user')

  // resolve、reject函数类型的数据
  return new Promise((resolve, reject) => {
    wx.request({
      // 解构请求头参数
      ...params,
      url: baseUrl + params.url,
      
      // 设置请求的 header
      header: {
        "token": user ? user.token : null
      },

      // 接口调用成功的回调函数
      success: (result) => {
        // 将promise的状态设置为“成功”
        resolve(result.data);
      },

      // 接口调用失败的回调函数
      fail: (err) => {
        // 将promise的状态设置为“失败”
        reject(err);
      },
      
      // 接口调用结束的回调函数（调用成功、失败都会执行）
      complete: () => {
        ajaxTimes --;
        if(ajaxTimes === 0) {  
          // 所有请求都完成后关闭提示
          wx.hideLoading();
        }
      },
    })
  })
}